package com.mycode.command15.resolve3;

import java.util.ArrayList;
import java.util.List;

// 配置文件设置窗口类：请求发送者
public class ConfigSettingWindow {
    // 定义集合来存储每一次操作时的命令对象
    private List<Command> commandList = new ArrayList<>();
    private Command command;

    // 注入具体命令对象
    public void setCommand(Command command) {
        this.command = command;
    }
    // 执行配置文件修改命令
    public void call(String args) {
        command.execute(args);
        commandList.add(command);
    }

    // 记录请求日志，生成日志文件
    public void save() {
        FileUtil.writeCommands(commandList);
    }
    // 从日志文件中提取命令模式，并循环调用每个 命令对象的 execute() 来实现配置文件
    public void recover() {
        List<Command> list = FileUtil.readCommands();
        for (Command commandTemp : list) {
            commandTemp.execute();
        }
    }
}
